Squidで検証用のプロキシを作ってみた
こんにちは。AWS事業本部のKyoです。
プライベートサブネット(NAT無し)でEC2のセットアップをしなければならない。そんな状況がありました。
利用するOSはAmazon Linux2。...それならこの方法ですね。
【小ネタ】えっ、Private SubnetからNATサーバを経由せずにyum updateができるって!?
...え、wgetとかcurlとかも必要...?
あ、本番環境にはプロキシサーバがあるんですね。
じゃあ検証にもプロキシがほしい! そんな流れでSquidを使って検証用のプロキシを立ててみることにしました。
なお、今回はなるべく簡単に検証することが目的でしたので、本番利用の際には設定等ご注意ください。
構成図
t2.micro
のAmazon Linux2のEC2インスタンスをパブリックサブネットとプライベートサブネットにそれぞれ1台づつ構築しました。
以降、パブリックサブネットのインスタンスをproxy
、プライベートサブネットのインスタンスをclient
と呼びます。
セキュリティグループはproxy
に3128
のインバウンドを許可。両方にSSH用の22
のインバウンドを許可してあります。
※ Squidの利用するデフォルトのポート。Squidのインストール時に変更する場合は、セキュリティグループも変更してください。
proxyへのSquidのセットアップ
proxy
にSSHしてSquidのセットアップを行います。
まずyumでインストールを行います。
sudo yum update sudo yum install squid
バージョンを確認してインストール出来ていることを確認します。
今回は3.5.20
でした。
squid -v
Squid Cache: Version 3.5.20 (以下略)
本番環境で利用するのであれば、/etc/squid/squid.conf
を修正しますが、今回は検証目的のためデフォルトで利用しました。
Squidの自動起動設定を行い、リスタートします。
sudo systemctl enable squid sudo systemctl restart squid
Squidがポート3128
を使用していることを確認します。
sudo lsof -i:3128
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME squid 21800 squid 11u IPv6 37157 0t0 TCP *:squid (LISTEN)
Squidの設定は以上です。
clientへのセットアップ
proxy
を踏み台にプライベートIPでclient
にSSHします。
それぞれの設定ファイルにプロキシの設定を記入します。
※3128
以外のポートを利用している場合は適宜変更してください。
yum
proxy=http://<proxyのプライベートIP>:3128
wget
http_proxy=http://<proxyのプライベートIP>:3128 https_proxy=http://<proxyのプライベートIP>:3128
curl
proxy=http://<proxyのプライベートIP>:3128
おわりに
Squidでサクっとプロキシを立てて使う、ということをやってみました。
特にハマりどころもなかったので、プロキシを使う予定があるけどハードルを感じている方がいらっしゃいましたら検証用として是非お試しください。
以上、何かのお役に立てれば幸いです。